1. Field of the Invention
The present invention relates to application execution in a content delivery network and, in particular, to accelerating retrieval of data for an application executed by a server in the content delivery network.
2. Description of the Related Art
Distributed software products and business applications operated by multiple computing devices connected by a network, such as the Internet, are becoming increasingly common. Typically, distributed operation of an application involves three primary entities connected by a network, the user, the computing platform executing the application, which may include multiple computing devices, and a database storing data used by the application. Multiple factors should be optimized to accelerate execution of a distributed application. In particular, the network latency between the user and the computing device executing the application and the network latency between the computing device executing the application and the database should be optimized. Further, optimizing dynamic provisioning of computing resources across the network for scalability and performance also expedites execution of a distributed application. However, conventional techniques for distributed application execution only optimize a subset of the above-identified factors, limiting application execution using conventional techniques.
For example, conventional cloud computing approaches to executing distributed applications generally provision resources in a data center to an application so that performance and scalability are optimized; however, conventional cloud computing approaches typically do not optimize network latencies between the user and the computing system executing the application or between the computing device executing the application and the database. Other techniques for distributed application execution select the computing device for execution of the application based on application-specific needs, but do not account for latency between the computing device executing the application and the database. While some approaches to distributed application execution export data using a database or a file that is communicated to the computing device executing the application, when the application data changes, an updated version of the database or the file must be generated and communicated to the computing device executing the application. Until the computing device executing the application receives the updated database or file, the application may be working with outdated, or incorrect, data.
Alternative techniques for execution of distributed applications attempt to minimize network latencies between the user and the computing device executing the application and between the computing device executing the application and the database. However, these techniques do not allow selection of the optimal device in the network that is able to most efficiently execute the application. Because conventional techniques for distributed application execution merely optimize a subset of the factors influencing application execution, these conventional techniques reduce the speed with which distributed applications are executed.